<?php

/**
 * Framework_Cache_Handler_Common
 *
 * @author      Ian Szewczyk <roamzero@gmail.com>
 * @copyright   (c) 2007 Ian Szewczyk. All rights reserved.
 * @license     http://www.opensource.org/licenses/bsd-license.php
 * @package Framework
 * @subpackage Cache
 * @subpackage Interface
 * @filesource
 */

/**
 * Framework_Cache_Handler_Common
 *
 * Objects that handle caching on behalf of object must extend from this
 *
 * @author 		Ian Szewczyk <roamzero@gmail.com>
 * @package 	Framework
 * @subpackage 	Handler
 */
abstract class Framework_Cache_Handler_Common
{
	
	/**
	 * $object
	 *
	 * Object that the cache handler uses
	 *
	 * @var 	object 	$object		Object that uses the cache handler
	 */
	protected $object;
	
	public function __construct($object)
	{
		$this->object = $object;
	}
    
	/**
     * getCache
     *
     * Gets a cache that is to be used for storing the object or data from the object
     *
     * @access      public
     * @return      string
     */
	abstract public function getCache();
	
	
	/**
     * getGroup
     *
     * Gets a cache group, otherwise return 'default' 
     *
     * @access      public
     * @return      string
     */
	abstract public function getGroup();
   
    /**
     * getKey
     *
     * Should return the ID that should be used to cache the object or it's data
     *
     * @access      public
     * @return      string
     */
    abstract public function getID();
    
    /**
     * getDataToCache
     *
     * Should return the data to be cached, otherwise return null
     *
     * @access      public
     * @return      Mixed
     */
    abstract public function getDataToCache();
    
   
}

?>